package com.coderush.admin.sys.model.dto;

import com.alibaba.fastjson2.JSON;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * PackageName com.coderush.admin.sys.model.dto
 *
 * @Author Eason
 * @Version v1.0
 * @ClassName JobAddDto
 * @Date 2025/8/25
 * @Description TODO
 */
@Data
public class JobAddDto {

    /**
     * 所属公司ID
     */
    @Schema(description = "所属公司ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "所属公司ID不能为空")
    private Long companyId;

    /**
     * 所属部门ID（为0：表示公司级职位或虚拟岗位）
     */
    @Schema(description = "所属部门ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "所属部门ID不能为空")
    private Long departmentId;

    /**
     * 职位名称
     */
    @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "职位名称不能为空")
    private String jobName;

    /**
     * 职位编码，如：POS-DEV-001，用于系统集成或报表
     */
    private String jobCode;

    /**
     * 职位描述，包括职责、要求等
     */
    private String description;

    /**
     * 状态：1-启用，0-停用
     */
    @Schema(description = "职位状态", requiredMode = Schema.RequiredMode.REQUIRED, allowableValues = {"1", "0"}, example = "1-启用，0-停用")
    @NotNull(message = "职位状态不能为空")
    private Integer jobStatus;

    public static void main(String[] args) {
        JobAddDto addDto = new JobAddDto();
        addDto.setCompanyId(1L);
        addDto.setDepartmentId(1L);
        addDto.setJobName("123");
        addDto.setJobCode("1111");
        addDto.setDescription("");
        addDto.setJobStatus(1);

        System.out.println(JSON.toJSONString(addDto));
    }
}